package com.cw.jeeyt.service.intf.api;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.cw.jeeyt.common.Order;
import com.cw.jeeyt.service.bo.api.ApiDatabaseDocConfigBo;
import com.cw.lang.mybatis.dto.PageInfo;

/**
 * 数据库文档生成配置表业务接口
* @author chenw
* @version 1.0.0
 */
public interface ApiDatabaseDocConfigService {
    /**
     * 查询所有数据库文档生成配置表列表信息
     */
    public List<ApiDatabaseDocConfigBo> queryApiDatabaseDocConfigList() throws Exception;

    /**
     * 删除数据库文档生成配置表
     *
     * @param apiDatabaseDocConfigBo
     */
    public void delete(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo) throws Exception;

    /**
     * 更新数据库文档生成配置表
     *
     * @param apiDatabaseDocConfigBo
     */
    public void update(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo) throws Exception;

    /**
     * 更新数据库文档生成配置表不为空的字段
     *
     * @param apiDatabaseDocConfigBo
     */
    public void updateSelective(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo) throws Exception;

    /**
     * 根据主键查询数据库文档生成配置表
     *
     * @return
     */
    public ApiDatabaseDocConfigBo getApiDatabaseDocConfigById(Long id) throws Exception;

    /**
     * 新增数据库文档生成配置表
     *
     * @param apiDatabaseDocConfigBo
     * @return
     */
    public Long insert(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo) throws Exception;

    /**
     * 新增数据库文档生成配置表不为空的字段
     *
     * @param apiDatabaseDocConfigBo
     * @return
     */
    public Integer insertSelective(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo) throws Exception;

    /**
     * 分页查询数据库文档生成配置表
     *
     * @param apiDatabaseDocConfigBo
     * @param startNum
     * @param pageSize
     * @return
     * @throws Exception
     */
    public PageInfo<ApiDatabaseDocConfigBo> queryByPage(ApiDatabaseDocConfigBo apiDatabaseDocConfigBo, Integer startNum,
        Integer pageSize, Order order) throws Exception;

    /**
     * 生成数据库文档
     *
     * @param databaseId
     * @throws Exception
     */
    void generateDoc(Long databaseId, String generateTablePrefix, HttpServletRequest request,
        HttpServletResponse response) throws Exception;

    ApiDatabaseDocConfigBo getApiDatabaseDocConfigByDatabaseId(Long databaseId) throws Exception;
}
